package com.fand.platform.authority.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.authority.dto.NavigationDto;
import com.fand.platform.authority.dto.NavigationLaDto;

/**
 * 导航服务
 *
 * @author yaoHT
 */
public interface NavigationService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.authority.service.NavigationService";

	String CACHE_NAME = BEAN_ID + "Cache";
	/**
	 * 保存:导航
	 * 
	 * @param saveNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	NavigationDto saveNavigationByIdOrCodeForNavigation(NavigationDto saveNavigation);

	/**
	 * 保存:导航
	 * 
	 * @param saveNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	NavigationDto saveNavigationBy2ForNavigation(NavigationDto saveNavigation);

	/**
	 * 删除:导航
	 * 
	 * @param deleteNavigation
	 *            导航对象
	 * 
	 * @return 影响行数
	 */
	int deleteNavigationBy1(NavigationDto deleteNavigation);

	/**
	 * 删除:导航
	 * 
	 * @param deleteNavigation
	 *            导航对象
	 * 
	 * @return 影响行数
	 */
	int deleteNavigationByIds(NavigationDto deleteNavigation);

	/**
	 * 设置:导航
	 * 
	 * @param setNavigation
	 *            导航对象
	 * 
	 * @return 影响行数
	 */
	int setNavigationBy1(NavigationDto setNavigation);

	/**
	 * 设置:导航
	 * 
	 * @param setNavigation
	 *            导航对象
	 * 
	 * @return 影响行数
	 */
	int setNavigationBy2(NavigationDto setNavigation);

	/**
	 * 读取:导航
	 * 
	 * @param readNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	Integer readNavigationByCodeNqIdForInteger(NavigationDto readNavigation);

	/**
	 * 读取:导航
	 * 
	 * @param readNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	Integer readNavigationBy2ForInteger(NavigationDto readNavigation);

	/**
	 * 读取:导航
	 * 
	 * @param readListNavigation
	 *            导航对象
	 * 
	 * @return 导航对象集合
	 */
	List<Integer> readListNavigationBy1(NavigationDto readNavigation);

	/**
	 * 读取:导航
	 * 
	 * @param readListNavigation
	 *            导航对象
	 * 
	 * @return 导航对象集合
	 */
	List<Integer> readListNavigationBy2(NavigationDto readNavigation);

	/**
	 * 查询:导航
	 * 
	 * @param getNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	NavigationDto getNavigationBy1(NavigationDto getNavigation);

	/**
	 * 查询:导航
	 * 
	 * @param getNavigation
	 *            导航对象
	 * 
	 * @return 导航对象
	 */
	NavigationDto getNavigationById(NavigationDto getNavigation);

	/**
	 * 查询:导航
	 * 
	 * @param findNavigation
	 *            导航对象
	 * 
	 * @return 导航对象集合
	 */
	List<NavigationDto> findNavigationBy1(NavigationDto findNavigation);

	/**
	 * 查询:导航
	 * 
	 * @param findNavigation
	 *            导航对象
	 * 
	 * @return 导航对象集合
	 */
	List<NavigationDto> findNavigationBy2(NavigationDto findNavigation);
	
	/**
	 * 分页:导航
	 * 
	 * @param paginationNavigation
	 *            导航对象
	 * 
	 * @return 导航分页对象
	 */
	PaginationDto<NavigationDto> paginationNavigationBy1ForNavigationList(NavigationDto paginationNavigation);
			
	/**
	 * 分页
	 * 
	 * @param paginationNavigation
	 *            导航对象
	 * 
	 * @return 导航分页对象
	 */
	PaginationDto<Map<String, Object>> paginationNavigationBy1ForMapList(NavigationDto paginationNavigation);
	/**
	 * 保存:导航与语言
	 * 
	 * @param saveNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	NavigationLaDto saveNavigationLaByIdOrCodeForNavigationLa(NavigationLaDto saveNavigationLa);

	/**
	 * 保存:导航与语言
	 * 
	 * @param saveNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	NavigationLaDto saveNavigationLaBy2ForNavigationLa(NavigationLaDto saveNavigationLa);

	/**
	 * 删除:导航与语言
	 * 
	 * @param deleteNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteNavigationLaBy1(NavigationLaDto deleteNavigationLa);

	/**
	 * 删除:导航与语言
	 * 
	 * @param deleteNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteNavigationLaByIds(NavigationLaDto deleteNavigationLa);

	/**
	 * 设置:导航与语言
	 * 
	 * @param setNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 影响行数
	 */
	int setNavigationLaBy1(NavigationLaDto setNavigationLa);

	/**
	 * 设置:导航与语言
	 * 
	 * @param setNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 影响行数
	 */
	int setNavigationLaBy2(NavigationLaDto setNavigationLa);

	/**
	 * 读取:导航与语言
	 * 
	 * @param readNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	Integer readNavigationLaByCodeNqIdForInteger(NavigationLaDto readNavigationLa);

	/**
	 * 读取:导航与语言
	 * 
	 * @param readNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	Integer readNavigationLaBy2ForInteger(NavigationLaDto readNavigationLa);

	/**
	 * 读取:导航与语言
	 * 
	 * @param readListNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象集合
	 */
	List<Integer> readListNavigationLaBy1(NavigationLaDto readNavigationLa);

	/**
	 * 读取:导航与语言
	 * 
	 * @param readListNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象集合
	 */
	List<Integer> readListNavigationLaBy2(NavigationLaDto readNavigationLa);

	/**
	 * 查询:导航与语言
	 * 
	 * @param getNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	NavigationLaDto getNavigationLaBy1(NavigationLaDto getNavigationLa);

	/**
	 * 查询:导航与语言
	 * 
	 * @param getNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象
	 */
	NavigationLaDto getNavigationLaById(NavigationLaDto getNavigationLa);

	/**
	 * 查询:导航与语言
	 * 
	 * @param findNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象集合
	 */
	List<NavigationLaDto> findNavigationLaBy1(NavigationLaDto findNavigationLa);

	/**
	 * 查询:导航与语言
	 * 
	 * @param findNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言对象集合
	 */
	List<NavigationLaDto> findNavigationLaBy2(NavigationLaDto findNavigationLa);
	
	/**
	 * 分页:导航与语言
	 * 
	 * @param paginationNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言分页对象
	 */
	PaginationDto<NavigationLaDto> paginationNavigationLaBy1ForNavigationLaList(NavigationLaDto paginationNavigationLa);
			
	/**
	 * 分页
	 * 
	 * @param paginationNavigationLa
	 *            导航与语言对象
	 * 
	 * @return 导航与语言分页对象
	 */
	PaginationDto<Map<String, Object>> paginationNavigationLaBy1ForMapList(NavigationLaDto paginationNavigationLa);
}